import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 23735
 * Date: 2023-11-23
 * Time: 23:13
 */
public class Solution {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int n = in.nextInt();
            double ans = getCount(n)*100.0/factorial(n);
            System.out.printf("%.2f%%\n", ans);
        }
    }


    /**
     *  错排算法
     *  n 个信封, n 张信, 全部装错
     *  1 装到 k 里面 有 n-1 种
     *  k 分两种情况
     *  ① 装 1, 那么剩下的 n-2 个就有 D(n-2) 种装法
     *  ② 不装 1, 那么就是说 k 不能装到 1,k 其实就是除去 1, 2~k 这 n-1 个 全部装错, 即 D(n-1)
     *  所以 : D(n) = (n-1) * [D(n-2) + D(n-1)]
     */
    public static double getCount(int n) {
        if (n == 1) {
            return 0;
        }
        if (n == 2) {
            return 1;
        }
        return (n-1) * 1.0 * (getCount(n-1) + getCount(n-2));
    }


    /**
     *  求阶乘
     *  所有装信封的方法数是 n!, 即分母是 n!
     */
    public static double factorial(int n) {
        if (n == 1) {
            return 1;
        }
        return n * 1.0 * factorial(n-1);
    }
}
